www.gusucode.com > matlab编程盲源分离程序 实现了EFICA、WASOBI、COMBI等算法源码程序 > matlab编程盲源分离程序 实现了EFICA、WASOBI、COMBI等算法源码程序/BSSGUIlunwen/bssg/bssgui_help.m

    function bssgui_help(keyword)

switch keyword
    
    case 'about'
        helptitle = 'About BSSGUI';
        helptext = [...

'X=======================================================================X'
'|           BSSGUI: Interactive GUI for BSS algorithms control          |'
'X-----------------------------------------------------------------------X'
'                                                                         '
'                 GUI by:            Jakub Petkov                         '
'                 e-mail:            bssgui@centrum.cz                    '
'                 homepage:          http://bssgui.wz.cz/                 '
'                 last modified:     2008-10-07                           '
'                 version:           2.0                                  '
'                                                                         '
'-------------------------------------------------------------------------'
'                         by J. Petkov (c) 2008                           '
'-------------------------------------------------------------------------'];


    case 'description'
        helptitle = 'Description of BSSGUI';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  Description of BSSGUI                                                   '
'  ---------------------                                                   '
'                                                                          '
'  BSSGUI is a Graphical User Interface (GUI) for control of BSS algorithms'
'  EFICA, WASOBI, COMBI, MULTI-COMBI, FCOMBI, BGL and Extended EFICA.      '
'  It was designed in/for MATLAB 7.1 Release R14SP3. Most of all important '
'  functions are controlled in a main window. The window is divided into 3 '
'  main parts. The first one enables to work with input (source) data,     '
'  the second one enables algorithms selection and setting their parameters'
'  and the last one enables other function, as for saving and working with '
'  output data and containing important Test data function.                '
'                                                                          '
'  The BSSGUI is provided in a package containing lightly adjusted M-files '
'  of used algorithms. The application uses msplot(x), showmatrixISR(x)    '
'  and gengau(x) functions as well.                                        '
'                                                                          '
'  The package contains large detailed HELP support area that makes using  '
'  the GUI more comfortable.                                               '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


    case 'guide'
        helptitle = 'Quick-start guide';
        helptext = [...

'X=======================================================================X   '
'|           BSSGUI: Interactive GUI for BSS algorithms control          |   '
'X-----------------------------------------------------------------------X   '
'                                                                            '
'  Quick-start guide                                                         '
'  -----------------                                                         '
'                                                                            '
'  If you want to use the BSSGUI and try to practice blind source separation '
'  without any knowledge about this problem, you can just follow these steps:'
'                                                                            '
'  1) Loading data                                                           '
'       - Press the LOAD DATA button in the main window of the application.  '
'       - Choose a variable containing source data. (loaded from base        '
'         workspace of Matlab)                                               '
'       - Confirm loading by pressing the button LOAD.                       '
'       - Check if a number of signals and a number of samples comes true.   '
'         If not, press the TRANSPOSE button to do the transposition.        '
'       - Input data can be visualy checked by pressing the PLOT DATA button.'
'                                                                            '
'  2) Running the separation                                                 '
'       - Select the desired algorithm. (EFICA is default)                   '
'       - You do not have to set any of its parameters. There are defined    '
'         default values, that are optimal for the common separation.        '
'       - Press the RUN BUTTON to run the separation.                        '
'                                                                            '
'  3) Working with outputs                                                   '
'       - Press the VIEW ISR button to see the correctness of separation.    '
'         (dark fields represent worse separation; black fields mean         '
'          nonseparability of concrete components)                           '
'       - Press the PLOT RESULTS button to see graphical results of          '
'         separation. (to check results of separation visualy)               '
'       - Presssing the SAVE RESULTS button enables you to save all results  '
'         in the base workspace of Matlab or to a user-named file. Just      '
'         choose desired destination and type name of variable or file or use'
'         clicking the Default button to load pre-defined values of names.   '
'                                                                            '
'                                                                            '
'-------------------------------------------------------------------------   '
'                         by J. Petkov (c) 2008                              '
'-------------------------------------------------------------------------   '];


    case 'input'
        helptitle = 'Input (source) data';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  Input (source) data                                                     '
'  -------------------                                                     '
'                                                                          '
'  The BSSGUI package works with arbitrary data organized into row vectors '
'  saved in variables in the base workspace of Matlab. It can be loaded by '
'  pressing the LOAD DATA button.                                          '
'                                                                          '
'  If the matrix of imported source data is organized into a set of column '
'  vectors (check indication in the main window of the application), it can'
'  be transposed by pressing the TRANSPOSE button.                         '
'                                                                          '
'                                                                          '
'  Examples                                                                '
'  --------                                                                '
'                                                                          '
'  1) The easiest way how to create data convenient for practicing the     '
'     separation is to use this command:                                   '
'                                                                          '
'           x=rand(5,1000);                                                '
'                                                                          '
'     It generates a matrix of source data which contains 5 source signals '
'     with 1000 samples. This variable can be used for practicing the      '
'     separation. But of course, separation using this generated data is   '
'     not illustrative.                                                    '
'                                                                          '
'  2) Advanced users can try to generate data prepared specially for each  '
'     algorithm they are going to use. That means:                         '
'                                                                          '
'     Lets generate source signals first.                                  '
'                                                                          '
'           s(1,:)=rand(1,1000);                % uniform distribution     '
'           s(2,:)=sign(randn(1,1000));         % binary distribution      '
'           s(3,:)=randn(1,1000);               % gaussian distribution    '
'           s(4,:)=randn(1,1000);               % gaussian distribution    '
'                                                                          '
'     Now generate random matrix A which represents system, where the      '
'     source signals s (defined above) are mixed. Dimension of matrix must '
'     be equal to the number of source singals.                            '
'                                                                          '
'           A=rand(4);                                                     '
'                                                                          '
'     Using following multiplication creates matrix of unknown mixed       '
'     signals x.                                                           '
'                                                                          '
'           x=A*s;                                                         '
'                                                                          '
'     Load variable x in the GUI by pressing the LOAD DATA button. Now you '
'     can consider which algorithm to use. Our aim is to get back the      '
'     source signals without knowledge of system A, just only by running   '
'     one of algorithms so we can delete the matrix A from workspace (to   '
'     trust that it really works).                                         '
'                                                                          '
'           clear A;                                                       '
'                                                                          '
'     Using one of algorithms on data x gets back a demixing matrix W which'
'     multiplicated by mixed signals gets back estimated appearance sw of  '
'     source signals s.                                                    '
'                                                                          '
'           sw=W*x;                                                        '
'                                                                          '
'     If the separation was 100% succesful data s is equal to sw. Of course'
'     that is an impossible situation in real separation because the       '
'     demixing matrix cannot be calculated but only estimated by used      '
'     algorithm.                                                           '
'                                                                          '
'                                                                          '
'     See also:                                                            '
'                                                                          '
'           Help -> Data -> Load data                                      '
'              (to see how to load data and how to work with built in demo '
'               signals generator)                                         '
'                                                                          '
'           Help -> Algorithms -> Run algorithm                            '
'              (to get more information about how to run the separation)   '
'                                                                          '
'           Help -> Plot and view -> Plot source data                      '
'              (to check visualy appearance of source data)                '
'                                                                          '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


    case 'load'
        helptitle = 'Load data procedure';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  Data loading                                                            '
'  ------------                                                            '
'                                                                          '
'  To load input (source) data you want to separate click the button marked'
'  as LOAD DATA. There will appear new window where you can select your    '
'  variable previously saved in the base workspace.                        '
'                                                                          '
'  Confirm data loading by pressing the LOAD button.                       '
'                                                                          '
'  If your variable does not appear in the window, its name may be         '
'  identical to some of the system variables of BSSGUI. Try to change the  '
'  name of your variable.                                                  '
'                                                                          '
'  Forbidden names of variables:                                           '
'     X, dim, N, nastaveni, was_temp, AR_order                             '
'                                                                          '
'                                                                          '
'  Example signals (USE DEMO button)                                       '
'  ---------------------------------                                       '
'                                                                          '
'  If you are not sure what kind of data you should use to try the BSSGUI  '
'  for the first time, you can use example signals generator.              '
'                                                                          '
'  Pressing the USE DEMO button starts the example signals generator which '
'  creates 3 independent signals with length of 1000 samples mixed by      '
'  randomly generated mixing matrix A. The source signals are              '
'                                                                          '
'     s(1,:)=sinusoid;                                                     '
'     s(2,:)=rectangle;                                                    '
'     s(3,:)=saw;                                                          '
'                                                                          '
'  After running the separation you should be able to observe these three  '
'  components of signals by pressing the PLOT RESULTS button.              '
'                                                                          '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


    case 'transpose'
        helptitle = 'Transpose data';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  Transpose data                                                          '
'  --------------                                                          '
'                                                                          '
'  BSSGUI works with input matrix of source data organized into a set of   '
'  row vectors. If your variable consists of a set of column vectors, it   '
'  can be transposed by pressing the TRANSPOSE data button.                '
'                                                                          '
'  After loading the data you may check organization of you loaded variable'
'  in the main window of BSSGUI in a panel marked as Mixed signals. Please '
'  check if the number of signals and number of samples are equal to the   '
'  reality. If the values dismatch use the TRANSPOSE button to make the    '
'  correction.                                                             '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


    case 'output'
        helptitle = 'Output data (results)';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  Output data                                                             '
'  -----------                                                             '
'                                                                          '
'  The output of the separation is expressed in two ways:                  '
'                                                                          '
'  1) ISR matrix                                                           '
'       - ISR = Interference-to-Signal Ratio                               '
'       - represents a criterion of correctness of the separation          '
'       - obtained as a square matrix consisting of zeros in the diagonal  '
'         (expressed by white fields)                                      '
'       - after running the separation, press button VIEW ISR to obtain    '
'         the ISR matrix plot in grey spectrum, which tells us, how        '
'         successful was the separation -> the darker fields the worse     '
'         correctness of separation (black fields say that the components  '
'         were not separated)                                              '
'                                                                          '
'  2) Estimation of demixing matrix                                        '
'       - marked as W                                                      '
'       - if multiplied by mixed source data gives us matrix of separated  '
'         signals (estimation of original source data)                     '
'                                                                          '
'   Both of these output matrices can be saved in the base workspace or    '
'   in user-defined file.                                                  '
'                                                                          '
'                                                                          '
'   See also:                                                              '
'                                                                          '
'         Help -> Data -> Save data                                        '
'            (to see how to work with save data functions)                 '
'                                                                          '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


    case 'save'
        helptitle = 'Saving data';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  Save data                                                               '
'  ---------                                                               '
'                                                                          '
'  Results of the separation (ISR matrix and estimation of demixing matrix '
'  W) can be optionally saved into variables in the base workspace or to   '
'  user-selected file.                                                     '
'                                                                          '
'  Follow these steps:                                                     '
'                                                                          '
'    1) Choose one of the possibilities ''To workspace'' or ''To file''        '
'    2) Type name of your variable or file. The fields can be filled       '
'       automaticaly by predefined vaues after pressing the DEFAULT button.'
'    3) Press the SAVE data button.                                        '
'                                                                          '
'                                                                          '
'  See also:                                                               '
'                                                                          '
'        Help -> Data -> Output data (results)                             '
'           (to get more information about the data to save)               '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


    case 'EFICA'
        helptitle = 'EFICA algorithm';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  EFICA                                                                   '
'  -----                                                                   '
'                                                                          '
'  Algorithm based on the Independent Component Analysis (ICA) therefore   '
'  it is convenient to use it for separating the non-Gaussian i. i. d.     '
'  signals. Other important condition is independence of signal components.'
'  Main principle of separation is minimalization of mutual information.   '
'                                                                          '
'                                                                          '
'  Settings (parameters)                                                   '
'  ---------------------                                                   '
'                                                                          '
'  SaddleTest:              test of saddle points                          '
'                               (true/false)                               '
'                                                                          '
'  Nonlinearity:            type of nonlinearity                           '
'                               (rat1, rat2 - polynomial                   '
'                                tanh - hyperbolic tangential              '
'                                gaus - gaussian)                          '
'                                                                          '
'  Starting point:          starting point of iteration                    '
'                               (randn(dim) - randomly generated matrix    '
'                                eye(dim) - eye matrix)                    '
'                                                                          '
'  Epsilon:                 very low value which doesn''t allow to stop     '
'                           iteration until changes in estimated demixing  '
'                           matrix are above this value (stop criterion)   '
'                                                                          '
'  FineEpsilon:             value used by finetuning to refine on          '
'                           a calculation (stop criterion for post         '
'                           estimation)                                    '
'                                                                          '
'  MaxIt:                   maximum number of FastICA iterations           '
'                                                                          '
'  MaxItAfterSaddleTest:    maximum number of iterations after a saddle    '
'                           point was indicated                            '
'                                                                          '
'  FinetuneMaxIt:           maximum number of improving iterations         '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


    case 'WASOBI'
        helptitle = 'WASOBI algorithm';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  WASOBI                                                                  '
'  ------                                                                  '
'                                                                          '
'  This algorithm works with stationary stochastic Gaussian processes.     '
'  Very important condition for using algorithm WASOBI is the spectral     '
'  difference of input signals. The algorithm exploits the time structure  '
'  of the signal sources and ignores the sources'' statistical              '
'  distributions.                                                          '
'                                                                          '
'                                                                          '
'  Settings (parameters)                                                   '
'  ---------------------                                                   '
'                                                                          '
'  AR order:                maximum AR order of the separated sources      '
'                                                                          '
'  Stabilization:           constant that may help to stabilize the        '
'                           algorithm. It has the meaning of maximum       '
'                           magnitude of poles of the AR sources.          '
'                               (rmax=1 - no stabilization is applied      '
'                                rmax=0.99 - most stable results)          '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


    case 'COMBI'
        helptitle = 'COMBI algorithm';
        helptext = [...

'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  COMBI                                                                   '
'  -----                                                                   '
'                                                                          '
'  This algorithm is used for separating more complicated source signals.  '
'  It means that the input signals consist of data with both dimensional   '
'  and time structure. It is unable to separate such signals by applicating'
'  only one of the algorithms EFICA or WASOBI.                             '
'                                                                          '
'  The COMBI algorithm was developed as an efficient combination of        '    
'  algorithms EFICA and WASOBI. In principle, COMBI reads the source       '
'  signals and analyses which part of the input data is convenient to      '
'  separate with each of the two methods.                                  '
'                                                                          '
'                                                                          '
'  Settings (parameters)                                                   '
'  ---------------------                                                   '
'                                                                          '
'  COMBI uses elementary predefined settings of algorithms EFICA and       '
'  WASOBI.                                                                 '
'                                                                          '
'                                                                          '
'  See also:                                                               '
'                                                                          '
'        Help -> Algorithms -> EFICA                                       '
'           (to get more information about used parameters)                '
'                                                                          '
'        Help -> Algorithms -> WASOBI                                      '
'           (to get more information about used parameters)                '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];



    case 'gendata'
        helptitle = 'Data generator';
        helptext = [...
            
'X=======================================================================X '
'|           BSSGUI: Interactive GUI for BSS algorithms control          | '
'X-----------------------------------------------------------------------X '
'                                                                          '
'  Data generator                                                          '
'  --------------                                                          '
'                                                                          '
'  for i=1:number_of_trials                                                '
'        for j=1:number_of_signals                                         '
'                                                                          '
'        s(:,i)=filter([1  1],[1],gengau2(1,1,1000));                      '
'                                                                          '
'------------------------------------------------------------------------- '
'                         by J. Petkov (c) 2008                            '
'------------------------------------------------------------------------- '];


        
% dal氻 zaj韒av mo瀗osti helpu

%    case 'A'
%        helptitle = 'Matrix A';
%        A = evalin('base', 'A');
%        helptext = [num2str(A)];
        
%    case 'B'
%        web \index.html
            

end

helpwin(helptext, helptitle);